<?php


namespace DesignPatterns\SimpleFactory;

/**
 * Class 简单工厂： 就是给参数要对象
 * @package DesignPatterns\SimpleFactory
 */
class Factory
{

    /**
     * 创建一种运算
     *
     * @param $operate
     * @return Add|Div|Mul|Sub
     */
    public function create($operate)
    {
        switch ($operate) {
            case '+':
                $result = new Add();
                break;
            case '-':
                $result = new Sub();
                break;
            case '*':
                $result = new Mul();
                break;
            case '/':
                $result = new Div();
                break;
            default:
                throw new \InvalidArgumentException('暂不支持的运算');
        }
        return $result;
    }

}


//当我们把这都拆开了来看的时候；
//就会发现简单这个名字真是没白起；
//它就是把 Bad.php 中的 case 换成具体的类；
// index.php 测试